package com.zjcloud.jwgl.service;

import java.util.List;
import com.zjcloud.jwgl.domain.ScGrade;

/**
 * 年级信息Service接口
 * 
 * @author zjcloud
 * @date 2024-12-19
 */
public interface IScGradeService 
{
    /**
     * 查询年级信息
     * 
     * @param id 年级信息主键
     * @return 年级信息
     */
    public ScGrade selectScGradeById(Long id);

    /**
     * 查询年级信息列表
     * 
     * @param scGrade 年级信息
     * @return 年级信息集合
     */
    public List<ScGrade> selectScGradeList(ScGrade scGrade);

    /**
     * 新增年级信息
     * 
     * @param scGrade 年级信息
     * @return 结果
     */
    public int insertScGrade(ScGrade scGrade);

    /**
     * 修改年级信息
     * 
     * @param scGrade 年级信息
     * @return 结果
     */
    public int updateScGrade(ScGrade scGrade);

    /**
     * 批量删除年级信息
     * 
     * @param ids 需要删除的年级信息主键集合
     * @return 结果
     */
    public int deleteScGradeByIds(Long[] ids);

    /**
     * 删除年级信息信息
     * 
     * @param id 年级信息主键
     * @return 结果
     */
    public int deleteScGradeById(Long id);

    /**
     * 根据学段查询年级列表
     * 
     * @param stage 学段
     * @return 年级列表
     */
    public List<ScGrade> selectScGradeByStage(String stage);

    /**
     * 根据年级编码查询年级信息
     * 
     * @param gradeCode 年级编码
     * @return 年级信息
     */
    public ScGrade selectScGradeByCode(String gradeCode);

    /**
     * 检查年级编码是否唯一
     * 
     * @param scGrade 年级信息
     * @return 结果
     */
    public String checkGradeCodeUnique(ScGrade scGrade);

    /**
     * 获取年级统计信息
     * 
     * @param gradeId 年级ID
     * @return 统计信息
     */
    public ScGrade getGradeStatistics(Long gradeId);

    /**
     * 更新年级统计信息
     * 
     * @param gradeId 年级ID
     * @return 结果
     */
    public int updateGradeStatistics(Long gradeId);
}